package com.cn.serverline.lineicp.workshopPlan.service;


import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cn.serverline.lineicp.productionLine.param.ProductMixTreeParam;
import com.cn.serverline.lineicp.workshopPlan.entity.Configuration;
import com.cn.serverline.lineicp.workshopPlan.entity.request.ConfigurationRequest;

import java.util.List;

/**
 * 产线构型 服务类
 *
 * @author 田江余
 * @date 2024年7月30日
 */
public interface ConfigurationService extends IService<Configuration> {

    /**
     * 新增
     *
     * @param configurationRequest 请求参数
     * @author 田江余
     * @date 2024年7月31日
     */
    Long add(ConfigurationRequest configurationRequest);

    /**
     * 删除
     *
     * @param configurationRequest 请求参数
     * @author 田江余
     * @date 2024年7月31日
     */
    void del(ConfigurationRequest configurationRequest);

    /**
     * 编辑
     *
     * @param configurationRequest 请求参数
     * @author 田江余
     * @date 2024年7月31日
     */
    void edit(ConfigurationRequest configurationRequest);

    /**
     * 根据传入的需要设置为默认构型的id修改成默认的其他的变成非默认的
     *
     * @param configurationId 构型的id
     */
    void updateDefault(Long configurationId);


    /**
     * 查询详情(产线构型点击配置按钮回显)
     *
     * @param configurationRequest 请求参数
     * @return 返回结果
     * @author 田江余
     * @date 2024年7月31日
     */
    List<ConfigurationRequest> detail(ConfigurationRequest configurationRequest);


    /**
     * 查询树结构
     * @param configurationRequest
     * @author 田江余
     * @date 2024年7月31日
     */
    List<Tree<Long>> tree(ConfigurationRequest configurationRequest);

}
